---
title: 数据库数据类型
date: 2023-03-21
images: https://kodo.huixiangwuyou.com/blog/images/sqltype.png
summary: '包含：数值类型、 日期和时间类型、 字符串类型'
tags: 
 - SQLDB
---


#### 数值类型

| 数值类型 | 大小 | 有符号(SIGNED)范围 | 	无符号(UNSIGNED)范围 | 描述 | 
| --- | --- | --- | --- | --- | 
| TINYINT | 1 byte | (-128， 127) | (0，255) | 小整数值 |
| SMALLINT | 2 bytes | (-32768，32767) | (0，65535) | 大整数值 | 
| MEDIUMINT | 3 bytes | (-8388608，8388607) | (0，16777215) | 大整数值 |
| INT或INTEGER | 4 bytes | (-2147483648，2147483647) | (0，4294967295) | 大整数值 | 
| BIGINT | 8 bytes | (-2^63，2^63-1) | (0，2^64-1) | 极大整数值 |
| FLOAT | 4 bytes | (-3.402823466 E+38，3.402823466351 E+ 38) | 0和(1.175494351 E-38，3.402823466E+38) | 单精度浮点数值 | 
| DOUBLE | 8 bytes | (-1.7976931348623157 +308，1.7976931348623157 E+308) | 0和(2.2250738585072014-308，1.7976931348623157 +308) | 双精度浮点数值 |
| DECIMAL |  - | 依赖于M(精度)和D(标度)的值 | 依赖于M(精度)和D(标度)的值 | 小数值(精确定点数) | 
|  |  |  |  |  |

<br/>

#### 字符串类型
| 类型 | 大小 | 描述 | 
| --- | --- | --- | 
| CHARE | 0-255 bytes | 定长字符串 |
| VARCHAR | 0-65535 bytes | 变长字符串 | 
| TINYBLOB | 0-255 bytes | 不超过255个字符的二进制数据 |
| TINYTEXT | 0-255 bytes | 短文本字符串 | 
| BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
| TEXT | 0-65 535 bytes | 长文本数据 | 
| MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
| MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 | 
| LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 | 
| LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 | 
|  |  |   |

对于 chare 和 varchar 类型，在定义字符串长度的时候，若是变量小于定义的长度，chare类型后面会显示空格，varchar类型 mysql 会在存储时删除末尾的空格。例如：在给名字定义类型的时候最好使用 varchar 类型，因为名字长度是不固定的。对于性别来说，最好使用 chare 类型，因为性别只有男和女两种。但是在性能对比上，chare 类型的性能要比 varchar 类型的性能要高，因为长度固定，比较稳定。      
对于二进制类型和文本类型，看情况定义，长文本和长二进制数据基本不会在数据库中使用。不好管理和性能较差，像媒体文件一般另外用服务器存储

<br/>


#### 日期和时间类型
| 类型 | 大小 | 格式 | 范围 | 描述 |
| --- | --- | --- | --- | --- |
| DATE | 3 bytes | YYYY-MM-DD | 1000-01-01/9999-12-31 | 日期值 |
| TIME | 3 bytes | HH:MM:SS | -838:59:59至838:59:59 | 时间值或持续时间 |
| YEAR | 1 bytes | YYYY | 1901至2155 | 年份值 |
| DATETIME | 8 bytes | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00至9999-12-3123:59:59 | 混合日期和时间值 |
| TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS| 1970-01-01 00:00:01至2038-01-19 03:14:07 | 混合日期和时间值，时间戳 |
|  |  |  |  |  |